首页 关于

ANSYS 二次开发:C#与tcl程序通过Socket传递命令

ANSYS 二次开发:C#与tcl程序通过Socket传递命令1 tcl服务端2 启动tcl Socket监听服务3 C# 通过Socket发送命令并接收结果

ANSYS Classic 本身不提供外部应用程序接口,但其自身支持tcl/tk脚本,因此可以在c#与tcl之间通过Socket传递命令,然后再由tcl向ANSYS发送命令,其流程如下:

Socket
APDL
C#
tcl
ANSYS

1 tcl服务端

使用以下代码监听9900端口,其回调函数为EchoAccept,一旦有可读数据,调用Echo函数,若识别"/input"命令,则使用ANSYS提供给tcl的“ans_sendcommand”函数,向ANSYS发送命令,并返回命令执行结果。

2 启动tcl Socket监听服务

在ANSYS里运行上述tcl脚本。若上述脚本保存为server.tcl文件,则运行的方式为在ANSYS命令栏输入:~tcl,source server.tcl,启动后,在ANSYS输出窗口可以看到:

image-20191228195521672

表明已经开启socket监听服务,后续可以将该过程的开启设置为自动化的,即随ANSYS启动自动运行该脚本,而无需手动输入。

3 C# 通过Socket发送命令并接收结果

由于是同一台计算机上不同程序,C#上tcp客户端请求连接127.0.0.1:9900,发送事先准备好的APDL命令流文件名,然后等待接收返回结果。

准备一下APDL文件:

运行以下代码:

得到:

image-20191228200852484

ANSYS输出窗口内容为:

image-20191228200938955